FreeCore Function #8:
512-point
Cosine
Module name:
cosine
Current release: version 1.0, August 19,
1997
Contributed by: Rune Baeverrud
Shown below is the schematic representation of the Cosine Module.
The Cosine Module has the following key properties:
The cosine look-up table was generated using the MIFGEN utility also available on this web site. The MIFGEN utility was set up with the following parameters:
Two files exists, one with Offset = 0 named "COS180N.MIF" and another with Offset = 128 named "COS180P.MIF". COS180N.MIF will be used if parameter POLARITY is set to "BIPOLAR", and COS180P.MIF will be used if parameter POLARITY is set to "UNIPOLAR". Options = "Symmetry" was chosen, requiring absolutely no manipulation of the look-up table output. This gives the advantage of high speed and very compact design. The amplitude was chosen to 126.2 - giving the highest possible SNR and therefore the closest approximation to a pure cosine.
With no pipelining (all levels set to "UNREGISTERED") a speed of 30-40 MHz is achievable in a FLEX 10K -3 device. With level 1, 2 and 3 set to "REGISTERED" (3 levels of pipeline) a speed of above 80MHz is achievable in a FLEX 10K -3 device.
PARAMETERS | |
POLARITY | Set to "UNIPOLAR" (1..128..255) operation or "BIPOLAR" (-126..0..126) operation (using 2's complement). |
LEVEL1 | Should be "REGISTERED" or "UNREGISTERED". Level 1 is the output of the subtractor ("angle/index modifier") and multiplexer which feeds the EAB look-up table. |
LEVEL2 | Should be "REGISTERED" or "UNREGISTERED". Level 2 is the input registers in the EAB look-up table. |
LEVEL3 | Should be "REGISTERED" or "UNREGISTERED". Level 3 is the output registers in the EAB look-up table. |
INPUT PORTS | |
SysClk | System clock input. |
Angle[8..0] | 9 bits (512 indexes) input giving the relative angle on the unit circle. Values 0-255 correspond to angles in the 0-180 degree range, values 256-511 correspond to angles in the 180-360 degree range. |
OUTPUT PORTS | |
Wave[7..0] | Digital Waveform output, unipolar or bipolar, depending on the POLARITY parameter setting. |
NOTE: You need to copy the files COS180N.MIF and COS180P.MIF to your current working directory.
Enjoy!
Last updated 08 Feb 2001 11:53